import type { ComponentProps } from "react";

export const Angular = (props: ComponentProps<"svg">) => (
  <svg
    fill="none"
    viewBox="0 0 188 200"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Angular</title>
    <path
      d="m94 0-93.099976 33.2 14.199976 123.1 78.9 43.7 78.9-43.7 14.2-123.1z"
      fill="#dd0031"
    />
    <path d="m94 0v22.2-.1 101.3 76.6l78.9-43.7 14.2-123.1z" fill="#c3002f" />
    <path
      d="m94 22.1-58.2 130.5h21.7l11.7-29.2h49.4l11.7 29.2h21.7zm17 83.3h-34l17-40.9z"
      fill="#fff"
    />
  </svg>
);

export const Astro = (props: ComponentProps<"svg">) => (
  <svg
    fill="none"
    viewBox="0 0 85 107"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Astro</title>
    <path
      d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z"
      fill="white"
    />
    <path
      d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z"
      fill="url(#paint0_linear_1_59)"
    />
    <path
      d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z"
      fill="currentColor"
    />
    <defs>
      <linearGradient
        gradientUnits="userSpaceOnUse"
        id="paint0_linear_1_59"
        x1="22.4702"
        x2="69.1451"
        y1="107"
        y2="84.9468"
      >
        <stop stopColor="#D83333" />
        <stop offset="1" stopColor="#F041FF" />
      </linearGradient>
    </defs>
  </svg>
);

export const Nextjs = (props: ComponentProps<"svg">) => (
  <svg
    fill="currentColor"
    preserveAspectRatio="xMidYMid"
    viewBox="0 0 256 256"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Next.js</title>
    <path d="m119.616813.06889051c-.550537.05004153-2.302248.22518685-3.878788.35029066-36.3605079 3.2777197-70.4187679 22.89399633-91.9898334 53.04401343-12.0117302 16.7639099-19.69423266 35.7796883-22.59706746 55.9214004-1.02600195 7.030834-1.15112414 9.107558-1.15112414 18.640467 0 9.53291.12512219 11.609634 1.15112414 18.640467 6.95679375 48.064882 41.16520036 88.448391 87.56050836 103.410806 8.3081133 2.677221 17.0666665 4.503737 27.0263925 5.60465 3.878788.425353 20.645162.425353 24.52395 0 17.191788-1.901578 31.756011-6.155107 46.120039-13.48619 2.20215-1.125934 2.627566-1.426183 2.327272-1.676391-.200195-.150124-9.584359-12.735567-20.845356-27.94819l-20.469991-27.647941-25.650048-37.956494c-14.113783-20.867315-25.7251227-37.931474-25.8252204-37.931474-.1000978-.025021-.2001955 16.838972-.2502444 37.431058-.0750733 36.054917-.1000978 37.506121-.5505376 38.356827-.6506354 1.226017-1.1511242 1.726433-2.2021506 2.276889-.800782.400332-1.5014663.475395-5.2801564.475395h-4.3292277l-1.1511242-.725602c-.7507331-.475395-1.3012708-1.100914-1.6766373-1.826516l-.5255132-1.125934.0500489-50.166626.0750733-50.1916467.7757575-.9758096c.4003911-.525436 1.2512219-1.2009966 1.8518085-1.5262665 1.0260019-.5004152 1.4263929-.5504567 5.7556207-.5504567 5.1049853 0 5.9558162.2001661 7.2821114 1.6513702.3753666.4003322 14.2639295 21.3176883 30.8801565 46.5135943 16.616227 25.195907 39.338416 59.599453 50.499316 76.488467l20.269794 30.700474 1.026002-.675561c9.083871-5.904899 18.693255-14.311875 26.300685-23.069141 16.190811-18.590426 26.626002-41.259235 30.129423-65.429291 1.026002-7.030833 1.151124-9.107557 1.151124-18.640467 0-9.532909-.125122-11.609633-1.151124-18.640467-6.956794-48.0648815-41.165201-88.4483898-87.560508-103.41080488-8.182992-2.65220067-16.891496-4.47871623-26.651027-5.57962971-2.402346-.25020761-18.943499-.52543598-21.020528-.3252699zm52.401173 77.41423469c1.201173.6004982 2.177126 1.7514532 2.527469 2.9524498.200195.6505398.250244 14.5620829.200195 45.913096l-.075073 44.987329-7.932747-12.16009-7.957771-12.16009v-32.702135c0-21.1425427.100097-33.0274042.250244-33.6028817.400391-1.4011626 1.276246-2.5020761 2.477419-3.1526158 1.026002-.525436 1.401369-.5754775 5.330206-.5754775 3.703616 0 4.354252.0500415 5.180058.5004152z" />
  </svg>
);

export const Qwik = (props: ComponentProps<"svg">) => (
  <svg
    fill="none"
    viewBox="0 0 154 165"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Qwik</title>
    <path
      d="m135.3 164.54-29.35-29.2-.42.07v-.3l-62.41-61.74 15.41-14.85-9.06-51.93-42.89 53.2c-7.279999 7.36-8.68 19.39-3.4 28.21l26.8 44.49c4.1 6.82 10.54 11.2 19.53 10.88 19.03-.67 27.4-.67 27.4-.67l58.37 21.81.02.02z"
      fill="#18b6f6"
    />
    <path
      d="m149.8 82.72c4.23-8.72 5.74-16.35 1.57-24l-5.93-10.92-3.08-5.6-1.2-2.2-.1.14-16.15-28c-1.996-3.48035-4.884-6.36571-8.366-8.35892-3.482-1.99322-7.432-3.022243-11.444-2.981095l-14.16.400005-42.25.11c-3.9226.02821-7.7707 1.07422-11.1677 3.03569-3.3971 1.96147-6.2268 4.77121-8.2123 8.15432l-25.66999 50.98 45.93999-57.15001 60.27 66.27001-10.8 10.93 6.45 51.84.09-.1v.14h-.1l.14.13 5.02 4.9 24.3 23.74c1.03.98 2.68-.2 2-1.42l-15.02-29.57"
      fill="#ac7ef4"
    />
  </svg>
);

export const React = (props: ComponentProps<"svg">) => (
  <svg
    viewBox="-11.5 -10.23174 23 20.46348"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>React</title>
    <circle fill="#61dafb" r="2.05" />
    <g fill="none" stroke="#61dafb">
      <ellipse rx="11" ry="4.2" />
      <ellipse
        rx="11"
        ry="4.2"
        transform="matrix(.5 .8660254 -.8660254 .5 0 0)"
      />
      <ellipse
        rx="11"
        ry="4.2"
        transform="matrix(-.5 .8660254 -.8660254 -.5 0 0)"
      />
    </g>
  </svg>
);

export const Remix = (props: ComponentProps<"svg">) => (
  <svg
    fill="none"
    viewBox="0 0 411 473"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Remix</title>
    <g fill="currentColor">
      <path
        clipRule="evenodd"
        d="m392.946 364.768c4.255 54.65 4.255 80.268 4.255 108.232h-126.445c0-6.091.109-11.663.219-17.313.342-17.564.699-35.88-2.147-72.868-3.761-54.152-27.08-66.185-69.957-66.185h-37.988-160.883v-98.525h204.889c54.16 0 81.241-16.476 81.241-60.098 0-38.357-27.081-61.6012-81.241-61.6012h-204.889v-96.4098h227.456c122.613 0 183.544 57.9117 183.544 150.42 0 69.193-42.877 114.319-100.799 121.84 48.895 9.777 77.48 37.605 82.745 92.508z"
        fillRule="evenodd"
      />
      <path d="m0 473v-73.447h133.697c22.332 0 27.181 16.563 27.181 26.441v47.006z" />
    </g>
  </svg>
);

export const Solid = (props: ComponentProps<"svg">) => (
  <svg viewBox="0 0 166 155.3" xmlns="http://www.w3.org/2000/svg" {...props}>
    <title>Solid</title>
    <defs>
      <linearGradient
        gradientUnits="userSpaceOnUse"
        id="a"
        x1="27.5"
        x2="152"
        y1="3"
        y2="63.5"
      >
        <stop offset=".1" stopColor="#76b3e1" />
        <stop offset=".3" stopColor="#dcf2fd" />
        <stop offset="1" stopColor="#76b3e1" />
      </linearGradient>
      <linearGradient
        gradientUnits="userSpaceOnUse"
        id="b"
        x1="95.8"
        x2="74"
        y1="32.6"
        y2="105.2"
      >
        <stop offset="0" stopColor="#76b3e1" />
        <stop offset=".5" stopColor="#4377bb" />
        <stop offset="1" stopColor="#1f3b77" />
      </linearGradient>
      <linearGradient
        gradientUnits="userSpaceOnUse"
        id="c"
        x1="18.4"
        x2="144.3"
        y1="64.2"
        y2="149.8"
      >
        <stop offset="0" stopColor="#315aa9" />
        <stop offset=".5" stopColor="#518ac8" />
        <stop offset="1" stopColor="#315aa9" />
      </linearGradient>
      <linearGradient
        gradientUnits="userSpaceOnUse"
        id="d"
        x1="75.2"
        x2="24.4"
        y1="74.5"
        y2="260.8"
      >
        <stop offset="0" stopColor="#4377bb" />
        <stop offset=".5" stopColor="#1a336b" />
        <stop offset="1" stopColor="#1a336b" />
      </linearGradient>
    </defs>
    <path
      d="M163 35S110-4 69 5l-3 1c-6 2-11 5-14 9l-2 3-15 26 26 5c11 7 25 10 38 7l46 9 18-30z"
      fill="#76b3e1"
    />
    <path
      d="M163 35S110-4 69 5l-3 1c-6 2-11 5-14 9l-2 3-15 26 26 5c11 7 25 10 38 7l46 9 18-30z"
      fill="url(#a)"
      opacity=".3"
    />
    <path
      d="M52 35l-4 1c-17 5-22 21-13 35 10 13 31 20 48 15l62-21S92 26 52 35z"
      fill="#518ac8"
    />
    <path
      d="M52 35l-4 1c-17 5-22 21-13 35 10 13 31 20 48 15l62-21S92 26 52 35z"
      fill="url(#b)"
      opacity=".3"
    />
    <path
      d="M134 80a45 45 0 00-48-15L24 85 4 120l112 19 20-36c4-7 3-15-2-23z"
      fill="url(#c)"
    />
    <path
      d="M114 115a45 45 0 00-48-15L4 120s53 40 94 30l3-1c17-5 23-21 13-34z"
      fill="url(#d)"
    />
  </svg>
);

export const Svelte = (props: ComponentProps<"svg">) => (
  <svg
    enableBackground="new 0 0 98.1 118"
    viewBox="0 0 98.1 118"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Svelte</title>
    <path
      d="m91.8 15.6c-10.9-15.7-32.6-20.3-48.2-10.4l-27.5 17.6c-7.5 4.7-12.7 12.4-14.2 21.1-1.3 7.3-.2 14.8 3.3 21.3-2.4 3.6-4 7.6-4.7 11.8-1.6 8.9.5 18.1 5.7 25.4 11 15.7 32.6 20.3 48.2 10.4l27.5-17.5c7.5-4.7 12.7-12.4 14.2-21.1 1.3-7.3.2-14.8-3.3-21.3 2.4-3.6 4-7.6 4.7-11.8 1.7-9-.4-18.2-5.7-25.5"
      fill="#ff3e00"
    />
    <path
      d="m40.9 103.9c-8.9 2.3-18.2-1.2-23.4-8.7-3.2-4.4-4.4-9.9-3.5-15.3.2-.9.4-1.7.6-2.6l.5-1.6 1.4 1c3.3 2.4 6.9 4.2 10.8 5.4l1 .3-.1 1c-.1 1.4.3 2.9 1.1 4.1 1.6 2.3 4.4 3.4 7.1 2.7.6-.2 1.2-.4 1.7-.7l27.4-17.5c1.4-.9 2.3-2.2 2.6-3.8s-.1-3.3-1-4.6c-1.6-2.3-4.4-3.3-7.1-2.6-.6.2-1.2.4-1.7.7l-10.5 6.7c-1.7 1.1-3.6 1.9-5.6 2.4-8.9 2.3-18.2-1.2-23.4-8.7-3.1-4.4-4.4-9.9-3.4-15.3.9-5.2 4.1-9.9 8.6-12.7l27.5-17.5c1.7-1.1 3.6-1.9 5.6-2.5 8.9-2.3 18.2 1.2 23.4 8.7 3.2 4.4 4.4 9.9 3.5 15.3-.2.9-.4 1.7-.7 2.6l-.5 1.6-1.4-1c-3.3-2.4-6.9-4.2-10.8-5.4l-1-.3.1-1c.1-1.4-.3-2.9-1.1-4.1-1.6-2.3-4.4-3.3-7.1-2.6-.6.2-1.2.4-1.7.7l-27.4 17.5c-1.4.9-2.3 2.2-2.6 3.8s.1 3.3 1 4.6c1.6 2.3 4.4 3.3 7.1 2.6.6-.2 1.2-.4 1.7-.7l10.5-6.7c1.7-1.1 3.6-1.9 5.6-2.5 8.9-2.3 18.2 1.2 23.4 8.7 3.2 4.4 4.4 9.9 3.5 15.3-.9 5.2-4.1 9.9-8.6 12.7l-27.5 17.5c-1.7 1.1-3.6 1.9-5.6 2.5"
      fill="#fff"
    />
  </svg>
);

export const Vue = (props: ComponentProps<"svg">) => (
  <svg
    viewBox="0 0 261.76 226.69"
    xmlns="http://www.w3.org/2000/svg"
    {...props}
  >
    <title>Vue</title>
    <g transform="matrix(1.3333 0 0 -1.3333 161.096398 .001167)">
      <path
        d="m0 0-22.669-39.264-22.669 39.264h-75.491l98.16-170.02 98.16 170.02z"
        fill="#41b883"
      />
      <path
        d="m0 0-22.669-39.264-22.669 39.264h-36.227l58.896-102.01 58.896 102.01z"
        fill="#34495e"
      />
    </g>
  </svg>
);
